﻿Imports System.Collections.Generic
Imports System.Data
Imports CondorTravel.BC
Imports CondorTravel.BE
Imports CondorTravelUTIL.DL


Public Class SolicitudServicios2
    'Inherits System.Web.UI.Page
    Inherits PaginaBase

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        If Not Page.IsPostBack Then
            CargarUsuarios()
            txtInicio.Text = "" : txtFin.Text = ""
            cboUsuarios.SelectedValue = CType(Session("usuario"), UsuariosBE).CodUsuario.Trim.ToUpper

            txtInicio.Attributes.Add("readonly", "readonly")
            txtFin.Attributes.Add("readonly", "readonly")

            cle1.StartDate = "01/01/2000"
            'cle1.EndDate = Date.Now

            cle2.StartDate = "01/01/2000"
            'cle2.EndDate = Date.Now

            '-----------------------------------------------------------

            Dim strRol As String = CType(Session("usuario"), UsuariosBE).Rol

            If strRol = "JFCOM" Then
                dgSolicitudServicio.Columns(7).Visible = False
                ListarSolicitudServicios()
            ElseIf strRol = "JFPRO" Then
                dgSolicitudServicio.Columns(6).Visible = False
                dgSolicitudServicio.Columns(8).Visible = False
                ListarSolicitudServicios()
                btnNuevo.Enabled = False
            ElseIf strRol = "ADMIN" Then
                ListarSolicitudServicios()
            Else
                btnNuevo.Enabled = False
                btnConsultar.Enabled = False
                btnLimpiar.Enabled = False
                Alerta("Usted no tiene permisos a este módulo.", False, String.Empty)
            End If


        End If
    End Sub

    Protected Sub btnNuevo_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnNuevo.Click
        Session("TipoEvento") = 0
        Response.Redirect("NuevaSolicitudServicios.aspx", True)
    End Sub

    Private Sub CargarUsuarios()
        Dim objUsuariosBC As New UsuarioBC
        Dim listUsuariosBE As List(Of UsuariosBE) = New List(Of UsuariosBE) 
        Dim objUsuarioBe As UsuariosBE = New UsuariosBE

        objUsuarioBe.CodUsuario = String.Empty
        objUsuarioBe.NomUsuario = "[Seleccione]"
        listUsuariosBE.Add(objUsuarioBe) 

        listUsuariosBE.AddRange(objUsuariosBC.ListarUsuarios())
          
        cboUsuarios.DataSource = listUsuariosBE
        cboUsuarios.DataValueField = "CodUsuario"
        cboUsuarios.DataTextField = "NomUsuario"
        cboUsuarios.DataBind()
    End Sub

    Private Sub ListarSolicitudServicios()
        Dim objSolicitudServiciosBE As New SolicitudServicioBE
        Dim objUtil As New Funciones
        If txtDesServicio.Text.Trim <> "" Then
            objSolicitudServiciosBE.NombreServicio = objUtil.ReemplazarTexto(txtDesServicio.Text.Trim)
        Else
            objSolicitudServiciosBE.NombreServicio = ""
        End If

        If cboUsuarios.SelectedValue.Trim <> "0" And cboUsuarios.SelectedValue.Trim <> "" Then
            objSolicitudServiciosBE.UsuarioCreador = cboUsuarios.SelectedValue
        Else
            objSolicitudServiciosBE.UsuarioCreador = ""
        End If
        If txtInicio.Text.Trim <> "" Then
            objSolicitudServiciosBE.FechaInicio = objUtil.ReemplazarTexto(txtInicio.Text.Trim)
        Else
            objSolicitudServiciosBE.FechaInicio = ""
        End If
        If txtFin.Text.Trim <> "" Then
            objSolicitudServiciosBE.FechaFin = objUtil.ReemplazarTexto(txtFin.Text.Trim)
        Else
            objSolicitudServiciosBE.FechaFin = ""
        End If
        Dim objSolicitudServicio As New SolicitudServicioBC 
        dgSolicitudServicio.DataSource = objSolicitudServicio.ListarSolicitudServicio(objSolicitudServiciosBE)
        dgSolicitudServicio.DataBind()

        If dgSolicitudServicio.Rows.Count <= 0 Then
            lblError.Visible = True
            lblListado.Visible = False
        Else
            lblError.Visible = False
            lblListado.Visible = True
        End If
    End Sub 

    Private Sub dgSolicitudServicio_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles dgSolicitudServicio.RowCommand
        ' se captura el código del command argument
        Dim intCodigo As Integer = Convert.ToInt32(e.CommandArgument)
        'Dim bExito As Boolean
        Dim sMensaje As String = String.Empty

        Select Case e.CommandName  '.ToLower
            Case "Editar"

                Session("TipoEvento") = 1 ' modificar
                'Dim objSolicitudServicio As New SolicitudServicioBE(intCodigo)
                'objSolicitudServicio.CodSolicitud = intCodigo
                Session("CodigoSolicitud") = intCodigo

                Response.Redirect("NuevaSolicitudServicios.aspx", True)

                'DFlores: Se agrega opción evaluar a listado
            Case "Evaluar"

                Session("TipoEvento") = 2 ' evaluar
                Session("CodigoSolicitud") = intCodigo

                Response.Redirect("EvaluarSolicitudServicios.aspx", True)

            Case "Eliminar"
                'Verifica si se debe o no eliminar el registro
                Dim objSolicitudServicio As New SolicitudServicioBE
                objSolicitudServicio.CodSolicitud = intCodigo
                Dim objSolicitudServicioBC As New SolicitudServicioBC

                Dim intRpta As Integer = 0
                intRpta = objSolicitudServicioBC.ValidarEliminarSolicitudServicio(objSolicitudServicio)
                If intRpta <= 0 Then
                    objSolicitudServicioBC.EliminarSolicitudServicio(objSolicitudServicio)
                    CargarUsuarios()
                    ListarSolicitudServicios()
                Else
                    Alerta("El registro no se puede eliminar. Existen Paquetes / Servicios creados.", False, String.Empty)
                    Exit Sub
                End If
        End Select
    End Sub

    Protected Sub btnConsultar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnConsultar.Click
        'validamos que fechas esten dentro de rango

        If txtInicio.Text <> String.Empty And txtFin.Text = String.Empty Then
            Alerta("Falta ingresar el campo HASTA, de la fecha creación.", False, String.Empty)
            Exit Sub
        End If

        If txtInicio.Text = String.Empty And txtFin.Text <> String.Empty Then
            Alerta("Falta ingresar el campo DESDE, de la fecha creación.", False, String.Empty)
            Exit Sub
        End If


        If txtInicio.Text.Length > 0 Or txtFin.Text.Length > 0 Then
            If CDate(txtFin.Text) < CDate(txtInicio.Text) Then
                Alerta("La fecha final no puede ser menor que la inicial.", False, String.Empty)
                Exit Sub
            End If
        End If 
        ListarSolicitudServicios()
    End Sub

    Protected Sub btnLimpiar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnLimpiar.Click
        txtDesServicio.Text = String.Empty
        txtFin.Text = String.Empty
        txtInicio.Text = String.Empty
    End Sub
End Class